home *** CD-ROM | disk | FTP | other *** search
/ Megahits 7 / Megahits 7 (1995)(GTI - Rhein-Main-Soft)(DE)[!].iso / franz / franz_301_350 / franz_302.dms / franz_302.adf / Planspiel_Börse / Planspiel_Börse.p.pp / Planspiel_Börse.p
Text File  |  1978-01-29  |  37KB  |  914 lines

  1. PROGRAM PlanspielBoerse;
  2. CONST Lenght  = 80;
  3.  
  4. TYPE String80 = STRING[80];
  5.      Aktien       = ARRAY[1..3] OF 0..37000;    {* 1 = Kurs / 2 = im Besitz / 3 = auf dem Markt *}
  6.  
  7. VAR F                   : TEXT;
  8.     Tag,Wahl,Guthaben   : INTEGER;
  9.     SpielerName         : STRING;
  10.     AEG,BASF,Bertelsmann,BMW,BP,Continental,DresdnerBank,Hoechst,IBM,Karstadt,KruppAG,Mercedes,Phoenix,Porsche,Siemens,Sony,Springer,Thyssen,Varta,VEW : Aktien;
  11.     AltAEG,AltBASF,AltBertelsmann,AltBMW,AltBP,AltContinental,AltDresdnerBank,AltHoechst,AltIBM,AltKarstadt,AltKruppAG,AltMercedes,AltPhoenix,AltPorsche,AltSiemens,AltSony,AltSpringer,AltThyssen,AltVarta,AltVEW : INTEGER;
  12.  
  13. PROCEDURE Nothing;
  14. BEGIN
  15. END;
  16.  
  17. PROCEDURE Coord(x,y:INTEGER);
  18. BEGIN
  19.   WRITE(F,chr($9b),y,';',x,'H');
  20. END;
  21.  
  22. PROCEDURE Voreinstellungen;
  23. BEGIN
  24.   {* Börsenkurs vom 22.11.1993 *}
  25.   AEG[1]          := 163; AEG[2]          := 0; AEG[3]          := 10;
  26.   BASF[1]         := 272; BASF[2]         := 0; BASF[3]         := 10;
  27.   Bertelsmann[1]  := 218; Bertelsmann[2]  := 0; Bertelsmann[3]  := 10;
  28.   BMW[1]          := 636; BMW[2]          := 0; BMW[3]          := 10;
  29.   BP[1]           := 118; BP[2]           := 0; BP[3]           := 10;
  30.   Continental[1]  := 253; Continental[2]  := 0; Continental[3]  := 10;
  31.   DresdnerBank[1] := 439; DresdnerBank[2] := 0; DresdnerBank[3] := 10;
  32.   Hoechst[1]      := 278; Hoechst[2]      := 0; Hoechst[3]      := 10;
  33.   IBM[1]          := 189; IBM[2]          := 0; IBM[3]          := 10;
  34.   Karstadt[1]     := 613; Karstadt[2]     := 0; Karstadt[3]     := 10;
  35.   KruppAG[1]      := 146; KruppAG[2]      := 0; KruppAG[3]      := 10;
  36.   Mercedes[1]     := 725; Mercedes[2]     := 0; Mercedes[3]     := 10;
  37.   Phoenix[1]      := 243; Phoenix[2]      := 0; Phoenix[3]      := 10;
  38.   Porsche[1]      := 760; Porsche[2]      := 0; Porsche[3]      := 10;
  39.   Siemens[1]      := 730; Siemens[2]      := 0; Siemens[3]      := 10;
  40.   Sony[1]         := 176; Sony[2]         := 0; Sony[3]         := 10;
  41.   Springer[1]     := 670; Springer[2]     := 0; Springer[3]     := 10;
  42.   Thyssen[1]      := 237; Thyssen[2]      := 0; Thyssen[3]      := 10;
  43.   Varta[1]        := 331; Varta[2]        := 0; Varta[3]        := 10;
  44.   VEW[1]          := 315; VEW[2]          := 0; VEW[3]          := 10;
  45.  
  46.   AltAEG          := 0;
  47.   AltBASF         := 0;
  48.   AltBertelsmann  := 0;
  49.   AltBMW          := 0;
  50.   AltBP           := 0;
  51.   AltContinental  := 0;
  52.   AltDresdnerBank := 0;
  53.   AltHoechst      := 0;
  54.   AltIBM          := 0;
  55.   AltKarstadt     := 0;
  56.   AltKruppAG      := 0;
  57.   AltMercedes     := 0;
  58.   AltPhoenix      := 0;
  59.   AltPorsche      := 0;
  60.   AltSiemens      := 0;
  61.   AltSony         := 0;
  62.   AltSpringer     := 0;
  63.   AltThyssen      := 0;
  64.   AltVarta        := 0;
  65.   AltVEW          := 0;
  66. END;
  67.  
  68. PROCEDURE AEGKaufen;
  69. BEGIN
  70.   Guthaben := Guthaben - AEG[1];
  71.   AEG[2] := AEG[2] + 1;
  72.   AEG[3] := AEG[3] - 1;
  73. END;
  74.  
  75. PROCEDURE BASFKaufen;
  76. BEGIN
  77.   Guthaben := Guthaben - BASF[1];
  78.   BASF[2] := BASF[2] + 1;
  79.   BASF[3] := BASF[3] - 1;
  80. END;
  81.  
  82. PROCEDURE BertelsmannKaufen;
  83. BEGIN
  84.   Guthaben := Guthaben - Bertelsmann[1];
  85.   Bertelsmann[2] := Bertelsmann[2] + 1;
  86.   Bertelsmann[3] := Bertelsmann[3] - 1;
  87. END;
  88.  
  89. PROCEDURE BMWKaufen;
  90. BEGIN
  91.   Guthaben := Guthaben - BMW[1];
  92.   BMW[2] := BMW[2] + 1;
  93.   BMW[3] := BMW[3] - 1;
  94. END;
  95.  
  96. PROCEDURE BPKaufen;
  97. BEGIN
  98.   Guthaben := Guthaben - BP[1];
  99.   BP[2] := BP[2] + 1;
  100.   BP[3] := BP[3] - 1;
  101. END;
  102.  
  103. PROCEDURE ContinentalKaufen;
  104. BEGIN
  105.   Guthaben := Guthaben - Continental[1];
  106.   Continental[2] := Continental[2] + 1;
  107.   Continental[3] := Continental[3] - 1;
  108. END;
  109.  
  110. PROCEDURE DresdnerBankKaufen;
  111. BEGIN
  112.   Guthaben := Guthaben - DresdnerBank[1];
  113.   DresdnerBank[2] := DresdnerBank[2] + 1;
  114.   DresdnerBank[3] := DresdnerBank[3] - 1;
  115. END;
  116.  
  117. PROCEDURE HoechstKaufen;
  118. BEGIN
  119.   Guthaben := Guthaben - Hoechst[1];
  120.   Hoechst[2] := Hoechst[2] + 1;
  121.   Hoechst[3] := Hoechst[3] - 1;
  122. END;
  123.  
  124. PROCEDURE IBMKaufen;
  125. BEGIN
  126.   Guthaben := Guthaben - IBM[1];
  127.   IBM[2] := IBM[2] + 1;
  128.   IBM[3] := IBM[3] - 1;
  129. END;
  130.  
  131. PROCEDURE KarstadtKaufen;
  132. BEGIN
  133.   Guthaben := Guthaben - Karstadt[1];
  134.   Karstadt[2] := Karstadt[2] + 1;
  135.   Karstadt[3] := Karstadt[3] - 1;
  136. END;
  137.  
  138. PROCEDURE KruppAGKaufen;
  139. BEGIN
  140.   Guthaben := Guthaben - KruppAG[1];
  141.   KruppAG[2] := KruppAG[2] + 1;
  142.   KruppAG[3] := KruppAG[3] - 1;
  143. END;
  144.  
  145. PROCEDURE MercedesKaufen;
  146. BEGIN
  147.   Guthaben := Guthaben - Mercedes[1];
  148.   Mercedes[2] := Mercedes[2] + 1;
  149.   Mercedes[3] := Mercedes[3] - 1;
  150. END;
  151.  
  152. PROCEDURE PhoenixKaufen;
  153. BEGIN
  154.   Guthaben := Guthaben - Phoenix[1];
  155.   Phoenix[2] := Phoenix[2] + 1;
  156.   Phoenix[3] := Phoenix[3] - 1;
  157. END;
  158.  
  159. PROCEDURE PorscheKaufen;
  160. BEGIN
  161.   Guthaben := Guthaben - Porsche[1];
  162.   Porsche[2] := Porsche[2] + 1;
  163.   Porsche[3] := Porsche[3] - 1;
  164. END;
  165.  
  166. PROCEDURE SiemensKaufen;
  167. BEGIN
  168.   Guthaben := Guthaben - Siemens[1];
  169.   Siemens[2] := Siemens[2] + 1;
  170.   Siemens[3] := Siemens[3] - 1;
  171. END;
  172.  
  173. PROCEDURE SonyKaufen;
  174. BEGIN
  175.   Guthaben := Guthaben - Sony[1];
  176.   Sony[2] := Sony[2] + 1;
  177.   Sony[3] := Sony[3] - 1;
  178. END;
  179.  
  180. PROCEDURE SpringerKaufen;
  181. BEGIN
  182.   Guthaben := Guthaben - Springer[1];
  183.   Springer[2] := Springer[2] + 1;
  184.   Springer[3] := Springer[3] - 1;
  185. END;
  186.  
  187. PROCEDURE ThyssenKaufen;
  188. BEGIN
  189.   Guthaben := Guthaben - Thyssen[1];
  190.   Thyssen[2] := Thyssen[2] + 1;
  191.   Thyssen[3] := Thyssen[3] - 1;
  192. END;
  193.  
  194. PROCEDURE VartaKaufen;
  195. BEGIN
  196.   Guthaben := Guthaben - Varta[1];
  197.   Varta[2] := Varta[2] + 1;
  198.   Varta[3] := Varta[3] - 1;
  199. END;
  200.  
  201. PROCEDURE VEWKaufen;
  202. BEGIN
  203.   Guthaben := Guthaben - VEW[1];
  204.   VEW[2] := VEW[2] + 1;
  205.   VEW[3] := VEW[3] - 1;
  206. END;
  207.  
  208. PROCEDURE VEWVerkaufen;
  209. BEGIN
  210.   Guthaben := Guthaben + VEW[1];
  211.   VEW[2] := VEW[2] - 1;
  212.   VEW[3] := VEW[3] + 1;
  213. END;
  214.  
  215. PROCEDURE AEGVerkaufen;
  216. BEGIN
  217.   Guthaben := Guthaben + AEG[1];
  218.   AEG[2] := AEG[2] - 1;
  219.   AEG[3] := AEG[3] + 1;
  220. END;
  221.  
  222. PROCEDURE BASFVerkaufen;
  223. BEGIN
  224.   Guthaben := Guthaben + BASF[1];
  225.   BASF[2] := BASF[2] - 1;
  226.   BASF[3] := BASF[3] + 1;
  227. END;
  228.  
  229. PROCEDURE BertelsmannVerkaufen;
  230. BEGIN
  231.   Guthaben := Guthaben + Bertelsmann[1];
  232.   Bertelsmann[2] := Bertelsmann[2] - 1;
  233.   Bertelsmann[3] := Bertelsmann[3] + 1;
  234. END;
  235.  
  236. PROCEDURE BMWVerkaufen;
  237. BEGIN
  238.   Guthaben := Guthaben + BMW[1];
  239.   BMW[2] := BMW[2] - 1;
  240.   BMW[3] := BMW[3] + 1;
  241. END;
  242.  
  243. PROCEDURE BPVerkaufen;
  244. BEGIN
  245.   Guthaben := Guthaben + BP[1];
  246.   BP[2] := BP[2] - 1;
  247.   BP[3] := BP[3] + 1;
  248. END;
  249.  
  250. PROCEDURE ContinentalVerkaufen;
  251. BEGIN
  252.   Guthaben := Guthaben + Continental[1];
  253.   Continental[2] := Continental[2] - 1;
  254.   Continental[3] := Continental[3] + 1;
  255. END;
  256.  
  257. PROCEDURE DresdnerBankVerkaufen;
  258. BEGIN
  259.   Guthaben := Guthaben + DresdnerBank[1];
  260.   DresdnerBank[2] := DresdnerBank[2] - 1;
  261.   DresdnerBank[3] := DresdnerBank[3] + 1;
  262. END;
  263.  
  264. PROCEDURE HoechstVerkaufen;
  265. BEGIN
  266.   Guthaben := Guthaben + Hoechst[1];
  267.   Hoechst[2] := Hoechst[2] - 1;
  268.   Hoechst[3] := Hoechst[3] + 1;
  269. END;
  270.  
  271. PROCEDURE IBMVerkaufen;
  272. BEGIN
  273.   Guthaben := Guthaben + IBM[1];
  274.   IBM[2] := IBM[2] - 1;
  275.   IBM[3] := IBM[3] + 1;
  276. END;
  277.  
  278. PROCEDURE KarstadtVerkaufen;
  279. BEGIN
  280.   Guthaben := Guthaben + Karstadt[1];
  281.   Karstadt[2] := Karstadt[2] - 1;
  282.   Karstadt[3] := Karstadt[3] + 1;
  283. END;
  284.  
  285. PROCEDURE KruppAGVerkaufen;
  286. BEGIN
  287.   Guthaben := Guthaben + KruppAG[1];
  288.   KruppAG[2] := KruppAG[2] - 1;
  289.   KruppAG[3] := KruppAG[3] + 1;
  290. END;
  291.  
  292. PROCEDURE MercedesVerkaufen;
  293. BEGIN
  294.   Guthaben := Guthaben + Mercedes[1];
  295.   Mercedes[2] := Mercedes[2] - 1;
  296.   Mercedes[3] := Mercedes[3] + 1;
  297. END;
  298.  
  299. PROCEDURE PhoenixVerkaufen;
  300. BEGIN
  301.   Guthaben := Guthaben + Phoenix[1];
  302.   Phoenix[2] := Phoenix[2] - 1;
  303.   Phoenix[3] := Phoenix[3] + 1;
  304. END;
  305.  
  306. PROCEDURE PorscheVerkaufen;
  307. BEGIN
  308.   Guthaben := Guthaben + Porsche[1];
  309.   Porsche[2] := Porsche[2] - 1;
  310.   Porsche[3] := Porsche[3] + 1;
  311. END;
  312.  
  313. PROCEDURE SiemensVerkaufen;
  314. BEGIN
  315.   Guthaben := Guthaben + Siemens[1];
  316.   Siemens[2] := Siemens[2] - 1;
  317.   Siemens[3] := Siemens[3] + 1;
  318. END;
  319.  
  320. PROCEDURE SonyVerkaufen;
  321. BEGIN
  322.   Guthaben := Guthaben + Sony[1];
  323.   Sony[2] := Sony[2] - 1;
  324.   Sony[3] := Sony[3] + 1;
  325. END;
  326.  
  327. PROCEDURE SpringerVerkaufen;
  328. BEGIN
  329.   Guthaben := Guthaben + Springer[1];
  330.   Springer[2] := Springer[2] - 1;
  331.   Springer[3] := Springer[3] + 1;
  332. END;
  333.  
  334. PROCEDURE ThyssenVerkaufen;
  335. BEGIN
  336.   Guthaben := Guthaben + Thyssen[1];
  337.   Thyssen[2] := Thyssen[2] - 1;
  338.   Thyssen[3] := Thyssen[3] + 1;
  339. END;
  340.  
  341. PROCEDURE VartaVerkaufen;
  342. BEGIN
  343.   Guthaben := Guthaben + Varta[1];
  344.   Varta[2] := Varta[2] - 1;
  345.   Varta[3] := Varta[3] + 1;
  346. END;
  347.  
  348. PROCEDURE Kaufen;
  349. BEGIN
  350.   REPEAT;
  351.   REPEAT;
  352.   CLRSCR(f);
  353.   COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben,' --- Tag: ',Tag);
  354.   COORD(1,3); WRITELN(f,'Nr. |Firma           |  Kurs  | im Besitz | auf dem Markt ');
  355.   COORD(1,4); WRITELN(f,'----+----------------+--------+-----------+---------------');
  356.   COORD(1,5); WRITELN(f,' 1  | AEG            | ',AEG[1]:5,'  | ',AEG[2]:9,' | ',AEG[3]);
  357.   COORD(1,6); WRITELN(f,' 2  | BASF           | ',BASF[1]:5,'  | ',BASF[2]:9,' | ',BASF[3]);
  358.   COORD(1,7); WRITELN(f,' 3  | Bertelsmann    | ',Bertelsmann[1]:5,'  | ',Bertelsmann[2]:9,' | ',Bertelsmann[3]);
  359.   COORD(1,8); WRITELN(f,' 4  | BMW            | ',BMW[1]:5,'  | ',BMW[2]:9,' | ',BMW[3]);
  360.   COORD(1,9); WRITELN(f,' 5  | BP             | ',BP[1]:5,'  | ',BP[2]:9,' | ',BP[3]);
  361.   COORD(1,10);WRITELN(f,' 6  | Continental    | ',Continental[1]:5,'  | ',Continental[2]:9,' | ',Continental[3]);
  362.   COORD(1,11);WRITELN(f,' 7  | Dresdner Bank  | ',DresdnerBank[1]:5,'  | ',DresdnerBank[2]:9,' | ',DresdnerBank[3]);
  363.   COORD(1,12);WRITELN(f,' 8  | Hoechst        | ',Hoechst[1]:5,'  | ',Hoechst[2]:9,' | ',Hoechst[3]);
  364.   COORD(1,13);WRITELN(f,' 9  | IBM            | ',IBM[1]:5,'  | ',IBM[2]:9,' | ',IBM[3]);
  365.   COORD(1,14);WRITELN(f,' 10 | Karstadt       | ',Karstadt[1]:5,'  | ',Karstadt[2]:9,' | ',Karstadt[3]);
  366.   COORD(1,15);WRITELN(f,' 11 | Krupp AG       | ',KruppAG[1]:5,'  | ',KruppAG[2]:9,' | ',KruppAG[3]);
  367.   COORD(1,16);WRITELN(f,' 12 | Mercedes       | ',Mercedes[1]:5,'  | ',Mercedes[2]:9,' | ',Mercedes[3]);
  368.   COORD(1,17);WRITELN(f,' 13 | Phoenix        | ',Phoenix[1]:5,'  | ',Phoenix[2]:9,' | ',Phoenix[3]);
  369.   COORD(1,18);WRITELN(f,' 14 | Porsche        | ',Porsche[1]:5,'  | ',Porsche[2]:9,' | ',Porsche[3]);
  370.   COORD(1,19);WRITELN(f,' 15 | Siemens        | ',Siemens[1]:5,'  | ',Siemens[2]:9,' | ',Siemens[3]);
  371.   COORD(1,20);WRITELN(f,' 16 | Sony           | ',Sony[1]:5,'  | ',Sony[2]:9,' | ',Sony[3]);
  372.   COORD(1,21);WRITELN(f,' 17 | Springer       | ',Springer[1]:5,'  | ',Springer[2]:9,' | ',Springer[3]);
  373.   COORD(1,22);WRITELN(f,' 18 | Thyssen        | ',Thyssen[1]:5,'  | ',Thyssen[2]:9,' | ',Thyssen[3]);
  374.   COORD(1,23);WRITELN(f,' 19 | Varta          | ',Varta[1]:5,'  | ',Varta[2]:9,' | ',Varta[3]);
  375.   COORD(1,24);WRITELN(f,' 20 | VEW            | ',VEW[1]:5,'  | ',VEW[2]:9,' | ',VEW[3]);
  376.   COORD(1,26);WRITE(f,' Welche Aktie wollen Sie kaufen (0 = Exit)? Nr.: '); READLN(f,Wahl);
  377.   UNTIL (Wahl > -1) AND (Wahl < 21);
  378.   CASE Wahl OF
  379.   0 : Nothing
  380.   1 : IF AEG[3] = 0 THEN Nothing
  381.                     ELSE AEGKaufen;
  382.   2 : IF BASF[3] = 0 THEN Nothing
  383.                      ELSE BASFKaufen;
  384.   3 : IF Bertelsmann[3] = 0 THEN Nothing
  385.                             ELSE Bertelsmannkaufen
  386.   4 : IF BMW[3] = 0 THEN Nothing
  387.                     ELSE BMWKaufen;
  388.   5 : IF BP[3] = 0 THEN Nothing
  389.                    ELSE BPKaufen;
  390.   6 : IF Continental[3] = 0 THEN Nothing
  391.                             ELSE ContinentalKaufen;
  392.   7 : IF DresdnerBank[3] = 0 THEN Nothing
  393.                              ELSE DresdnerBankKaufen;
  394.   8 : IF Hoechst[3] = 0 THEN Nothing
  395.                         ELSE HoechstKaufen;
  396.   9 : IF IBM[3] = 0 THEN Nothing
  397.                     ELSE IBMKaufen;
  398.   10: IF Karstadt[3] = 0 THEN Nothing
  399.                       ELSE KarstadtKaufen;
  400.   11: IF KruppAG[3] = 0 THEN Nothing
  401.                      ELSE KruppAGKaufen;
  402.   12: IF Mercedes[3] = 0 THEN Nothing
  403.                          ELSE MercedesKaufen;
  404.   13: IF Phoenix[3] = 0 THEN Nothing
  405.                         ELSE PhoenixKaufen;
  406.   14: IF Porsche[3] = 0 THEN Nothing
  407.                         ELSE PorscheKaufen;
  408.   15: IF Siemens[3] = 0 THEN Nothing
  409.                         ELSE Siemenskaufen;
  410.   16: IF Sony[3] = 0 THEN Nothing
  411.                      ELSE Sonykaufen;
  412.   17: IF Springer[3] = 0 THEN Nothing
  413.                          ELSE Springerkaufen;
  414.   18: IF Thyssen[3] = 0 THEN Nothing
  415.                         ELSE Thyssenkaufen;
  416.   19: IF Varta[3] = 0 THEN Nothing
  417.                       ELSE Vartakaufen;
  418.   20: IF VEW[3] = 0 THEN Nothing
  419.                     ELSE VEWKaufen;
  420.  END;
  421.  UNTIL Wahl = 0;
  422. END;
  423.  
  424. PROCEDURE Verkaufen;
  425. BEGIN
  426.   REPEAT;
  427.   REPEAT;
  428.   CLRSCR(f);
  429.   COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
  430.   COORD(1,3); WRITELN(f,'Nr. |Firma           |  Kurs  | im Besitz | auf dem Markt ');
  431.   COORD(1,4); WRITELN(f,'----+----------------+--------+-----------+---------------');
  432.   IF AEG[2] = 0 THEN Nothing
  433.                 ELSE WRITELN(f,' 1  | AEG            | ',AEG[1]:5,'  | ',AEG[2]:9,' | ',AEG[3]);
  434.   IF BASF[2] = 0 THEN Nothing
  435.                  ELSE WRITELN(f,' 2  | BASF           | ',BASF[1]:5,'  | ',BASF[2]:9,' | ',BASF[3]);
  436.   IF Bertelsmann[2] = 0 THEN Nothing
  437.                         ELSE WRITELN(f,' 3  | Bertelsmann    | ',Bertelsmann[1]:5,'  | ',Bertelsmann[2]:9,' | ',Bertelsmann[3]);
  438.   IF BMW[2] = 0 THEN Nothing
  439.                 ELSE WRITELN(f,' 4  | BMW            | ',BMW[1]:5,'  | ',BMW[2]:9,' | ',BMW[3]);
  440.   IF BP[2] = 0 THEN Nothing
  441.                ELSE WRITELN(f,' 5  | BP             | ',BP[1]:5,'  | ',BP[2]:9,' | ',BP[3]);
  442.   IF Continental[2] = 0 THEN Nothing
  443.                         ELSE WRITELN(f,' 6  | Continental    | ',Continental[1]:5,'  | ',Continental[2]:9,' | ',Continental[3]);
  444.   IF DresdnerBank[2] = 0 THEN Nothing
  445.                          ELSE WRITELN(f,' 7  | Dresdner Bank  | ',DresdnerBank[1]:5,'  | ',DresdnerBank[2]:9,' | ',DresdnerBank[3]);
  446.   IF Hoechst[2] = 0 THEN Nothing
  447.                     ELSE WRITELN(f,' 8  | Hoechst        | ',Hoechst[1]:5,'  | ',Hoechst[2]:9,' | ',Hoechst[3]);
  448.   IF IBM[2] = 0 THEN Nothing
  449.                 ELSE WRITELN(f,' 9  | IBM            | ',IBM[1]:5,'  | ',IBM[2]:9,' | ',IBM[3]);
  450.   IF Karstadt[2] = 0 THEN Nothing
  451.                      ELSE WRITELN(f,' 10 | Karstadt       | ',Karstadt[1]:5,'  | ',Karstadt[2]:9,' | ',Karstadt[3]);
  452.   IF KruppAG[2] = 0 THEN Nothing
  453.                     ELSE WRITELN(f,' 11 | Krupp AG       | ',KruppAG[1]:5,'  | ',KruppAG[2]:9,' | ',KruppAG[3]);
  454.   IF Mercedes[2] = 0 THEN Nothing
  455.                      ELSE WRITELN(f,' 12 | Mercedes       | ',Mercedes[1]:5,'  | ',Mercedes[2]:9,' | ',Mercedes[3]);
  456.   IF Phoenix[2] = 0 THEN Nothing
  457.                     ELSE WRITELN(f,' 13 | Phoenix        | ',Phoenix[1]:5,'  | ',Phoenix[2]:9,' | ',Phoenix[3]);
  458.   IF Porsche[2] = 0 THEN Nothing
  459.                     ELSE WRITELN(f,' 14 | Porsche        | ',Porsche[1]:5,'  | ',Porsche[2]:9,' | ',Porsche[3]);
  460.   IF Siemens[2] = 0 THEN Nothing
  461.                     ELSE WRITELN(f,' 15 | Siemens        | ',Siemens[1]:5,'  | ',Siemens[2]:9,' | ',Siemens[3]);
  462.   IF Sony[2] = 0 THEN Nothing
  463.                  ELSE WRITELN(f,' 16 | Sony           | ',Sony[1]:5,'  | ',Sony[2]:9,' | ',Sony[3]);
  464.   IF Springer[2] = 0 THEN Nothing
  465.                      ELSE WRITELN(f,' 17 | Springer       | ',Springer[1]:5,'  | ',Springer[2]:9,' | ',Springer[3]);
  466.   IF Thyssen[2] = 0 THEN Nothing
  467.                     ELSE WRITELN(f,' 18 | Thyssen        | ',Thyssen[1]:5,'  | ',Thyssen[2]:9,' | ',Thyssen[3]);
  468.   IF Varta[2] = 0 THEN Nothing
  469.                   ELSE WRITELN(f,' 19 | Varta          | ',Varta[1]:5,'  | ',Varta[2]:9,' | ',Varta[3]);
  470.   IF VEW[2] = 0 THEN Nothing
  471.                 ELSE WRITELN(f,' 20 | VEW            | ',VEW[1]:5,'  | ',VEW[2]:9,' | ',VEW[3]);
  472.   COORD(1,26); WRITE(f,'Welche Aktie wollen Sie verkaufen (0 = Exit)? Nr.: '); READLN(f,Wahl);
  473.   UNTIL (Wahl > -1) AND (Wahl < 21);
  474.   CASE Wahl OF
  475.   0 : Nothing;
  476.   1 : IF AEG[2] = 0 THEN Nothing
  477.                     ELSE AEGVerkaufen;
  478.   2 : IF BASF[2] = 0 THEN Nothing
  479.                      ELSE BASFVerkaufen;
  480.   3 : IF Bertelsmann[2] = 0 THEN Nothing
  481.                              ELSE BertelsmannVerkaufen;
  482.   4 : IF BMW[2] = 0 THEN Nothing
  483.                     ELSE BMWVerkaufen;
  484.   5 : IF BP[2] = 0 THEN Nothing
  485.                    ELSE BPVerkaufen;
  486.   6 : IF Continental[2] = 0 THEN Nothing
  487.                             ELSE ContinentalVerkaufen;
  488.   7 : IF DresdnerBank[2] = 0 THEN Nothing
  489.                              ELSE DresdnerBankVerkaufen;
  490.   8 : IF Hoechst[2] = 0 THEN Nothing
  491.                         ELSE HoechstVerkaufen;
  492.   9 : IF IBM[2] = 0 THEN Nothing
  493.                     ELSE IBMVerkaufen;
  494.   10: IF Karstadt[2] = 0 THEN Nothing
  495.                          ELSE KarstadtVerkaufen;
  496.   11: IF KruppAG[2] = 0 THEN Nothing
  497.                         ELSE KruppAGVerkaufen;
  498.   12: IF Mercedes[2] = 0 THEN Nothing
  499.                          ELSE MercedesVerkaufen;
  500.   13: IF Phoenix[2] = 0 THEN Nothing
  501.                         ELSE PhoenixVerkaufen;
  502.   14: IF Porsche[2] = 0 THEN Nothing
  503.                         ELSE PorscheVerkaufen;
  504.   15: IF Siemens[2] = 0 THEN Nothing
  505.                         ELSE SiemensVerkaufen;
  506.   16: IF Sony[2] = 0 THEN Nothing
  507.                      ELSE SonyVerkaufen;
  508.   17: IF Springer[2] = 0 THEN Nothing
  509.                          ELSE SpringerVerkaufen;
  510.   18: IF Thyssen[2] = 0 THEN Nothing
  511.                         ELSE ThyssenVerkaufen;
  512.   19: IF Varta[2] = 0 THEN Nothing
  513.                       ELSE VartaVerkaufen;
  514.   20: IF VEW[2] = 0 THEN Nothing
  515.                     ELSE VEWVerkaufen;
  516.   END;
  517.  UNTIL Wahl = 0;
  518. END;
  519.  
  520. PROCEDURE Kurs;
  521. VAR Return : STRING;
  522. BEGIN
  523.   CLRSCR(f);
  524.   COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
  525.   COORD(1,3); WRITELN(f,'Nr. |Firma           |  Kurs  | alter Kurs');
  526.   COORD(1,4); WRITELN(f,'----+----------------+--------+------------');
  527.   COORD(1,5); WRITELN(f,' 1  | AEG            | ',AEG[1]:5,'  | ',AltAEG:5);
  528.   COORD(1,6); WRITELN(f,' 2  | BASF           | ',BASF[1]:5,'  | ',AltBASF:5);
  529.   COORD(1,7); WRITELN(f,' 3  | Bertelsmann    | ',Bertelsmann[1]:5,'  | ',AltBertelsmann:5);
  530.   COORD(1,8); WRITELN(f,' 4  | BMW            | ',BMW[1]:5,'  | ',AltBMW:5);
  531.   COORD(1,9); WRITELN(f,' 5  | BP             | ',BP[1]:5,'  | ',AltBP:5);
  532.   COORD(1,10);WRITELN(f,' 6  | Continental    | ',Continental[1]:5,'  | ',AltContinental:5);
  533.   COORD(1,11);WRITELN(f,' 7  | DresdnerBank   | ',DresdnerBank[1]:5,'  | ',AltDresdnerBank:5);
  534.   COORD(1,12);WRITELN(f,' 8  | Hoechst        | ',Hoechst[1]:5,'  | ',AltHoechst:5);
  535.   COORD(1,13);WRITELN(f,' 9  | IBM            | ',IBM[1]:5,'  | ',AltIBM:5);
  536.   COORD(1,14);WRITELN(f,'10  | Karstadt       | ',Karstadt[1]:5,'  | ',AltKarstadt:5);
  537.   COORD(1,15);WRITELN(f,'11  | Krupp AG       | ',KruppAG[1]:5,'  | ',AltKruppAG:5);
  538.   COORD(1,16);WRITELN(f,'12  | Mercedes       | ',Mercedes[1]:5,'  | ',AltMercedes:5);
  539.   COORD(1,17);WRITELN(f,'13  | Phoenix        | ',Phoenix[1]:5,'  | ',AltPhoenix:5);
  540.   COORD(1,18);WRITELN(f,'14  | Porsche        | ',Porsche[1]:5,'  | ',AltPorsche:5);
  541.   COORD(1,19);WRITELN(f,'15  | Siemens        | ',Siemens[1]:5,'  | ',AltSiemens:5);
  542.   COORD(1,20);WRITELN(f,'16  | Sony           | ',Sony[1]:5,'  | ',AltSony:5);
  543.   COORD(1,21);WRITELN(f,'17  | Springer       | ',Springer[1]:5,'  | ',AltSpringer:5);
  544.   COORD(1,22);WRITELN(f,'18  | Thyssen        | ',Thyssen[1]:5,'  | ',AltThyssen:5);
  545.   COORD(1,23);WRITELN(f,'19  | Varta          | ',Varta[1]:5,'  | ',AltVarta:5);
  546.   COORD(1,24);WRITELN(f,'20  | VEW            | ',VEW[1]:5,'  | ',AltVEW:5);
  547.   COORD(1,26); READLN(f,Return);
  548. END;
  549.  
  550. PROCEDURE Spielmenu;
  551. BEGIN
  552.   REPEAT;
  553.   CLRSCR(f);
  554.   COORD(1,1);  WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
  555.   COORD(15,3); WRITELN(f,'       »» Menü ««');
  556.   COORD(15,5); WRITELN(f,'[1] ... Aktien kaufen');
  557.   COORD(15,6); WRITELN(f,'[2] ... Aktien verkaufen');
  558.   COORD(15,7); WRITELN(f,'[3] ... Aktienkurs ansehen');
  559.   COORD(15,8); WRITELN(f,'[4] ... Zug beendet!');
  560.   COORD(15,9); WRITELN(f,'[5] ... Spiel beenden');
  561.   COORD(13,11);WRITE(f,'> '); READLN(f,Wahl);
  562.   UNTIL (Wahl > 0) AND (Wahl < 6);
  563. END;
  564.  
  565. PROCEDURE Kursberechnung;
  566. VAR ZuffiZiffer,Zuffiziffer2 : INTEGER;
  567. BEGIN
  568.   Tag := Tag + 1;
  569.   AltAEG          := AEG[1];
  570.   AltBASF         := BASF[1];
  571.   AltBertelsmann  := Bertelsmann[1];
  572.   AltBMW          := BMW[1];
  573.   AltBP           := BP[1];
  574.   AltContinental  := Continental[1];
  575.   AltDresdnerBank := DresdnerBank[1];
  576.   AltHoechst      := Hoechst[1];
  577.   AltIBM          := IBM[1];
  578.   AltKarstadt     := Karstadt[1];
  579.   AltKruppAG      := KruppAG[1];
  580.   AltMercedes     := Mercedes[1];
  581.   AltPhoenix      := Phoenix[1];
  582.   AltPorsche      := Porsche[1];
  583.   AltSiemens      := Siemens[1];
  584.   AltSony         := Sony[1];
  585.   AltSpringer     := Springer[1];
  586.   AltThyssen      := Thyssen[1];
  587.   AltVarta        := Varta[1];
  588.   AltVEW          := VEW[1];
  589.  
  590.   ZuffiZiffer := RANDOM(30);
  591.   IF Zuffiziffer <= 0 THEN AEG[1] := AEG[1];
  592.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  593.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  594.                                     AEG[1] := (AEG[1] - 25) + Zuffiziffer2;
  595.                                   END;
  596.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  597.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  598.                                      AEG[1] := AEG[1] + 2 + Zuffiziffer;
  599.                                    END;
  600.  
  601.   ZuffiZiffer := RANDOM(30);
  602.   IF Zuffiziffer <= 0 THEN BASF[1] := BASF[1];
  603.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  604.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  605.                                    BASF[1] := (BASF[1] - 25) + Zuffiziffer2;
  606.                                   END;
  607.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  608.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  609.                                      BASF[1] := BASF[1] + 2 + Zuffiziffer;
  610.                                    END;
  611.  
  612.   ZuffiZiffer := RANDOM(30);
  613.   IF Zuffiziffer <= 0 THEN Bertelsmann[1] := Bertelsmann[1];
  614.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  615.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  616.                                    Bertelsmann[1] := (Bertelsmann[1] - 25) + Zuffiziffer2;
  617.                                   END;
  618.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  619.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  620.                                      Bertelsmann[1] := Bertelsmann[1] + 2 + Zuffiziffer;
  621.                                    END;
  622.  
  623.   ZuffiZiffer := RANDOM(30);
  624.   IF Zuffiziffer <= 0 THEN BMW[1] := BMW[1];
  625.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  626.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  627.                                    BMW[1] := (BMW[1] - 25) + Zuffiziffer2;
  628.                                   END;
  629.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  630.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  631.                                      BMW[1] := BMW[1] + 2 + Zuffiziffer;
  632.                                    END;
  633.   ZuffiZiffer := RANDOM(30);
  634.   IF Zuffiziffer <= 0 THEN BP[1] := BP[1];
  635.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  636.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  637.                                    BP[1] := (BP[1] - 25) + Zuffiziffer2;
  638.                                   END;
  639.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  640.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  641.                                      BP[1] := BP[1] + 2 + Zuffiziffer;
  642.                                    END;
  643.  
  644.   ZuffiZiffer := RANDOM(30);
  645.   IF Zuffiziffer <= 0 THEN Continental[1] := Continental[1];
  646.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  647.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  648.                                    Continental[1] := (Continental[1] - 25) + Zuffiziffer2;
  649.                                   END;
  650.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  651.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  652.                                      Continental[1] := Continental[1] + 2 + Zuffiziffer;
  653.                                    END;
  654.  
  655.   ZuffiZiffer := RANDOM(30);
  656.   IF Zuffiziffer <= 0 THEN DresdnerBank[1] := DresdnerBank[1];
  657.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  658.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  659.                                    DresdnerBank[1] := (DresdnerBank[1] - 25) + Zuffiziffer2;
  660.                                   END;
  661.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  662.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  663.                                      DresdnerBank[1] := DresdnerBank[1] + 2 + Zuffiziffer;
  664.                                    END;
  665.  
  666.   ZuffiZiffer := RANDOM(30);
  667.   IF Zuffiziffer <= 0 THEN Hoechst[1] := Hoechst[1];
  668.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  669.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  670.                                    Hoechst[1] := (Hoechst[1] - 25) + Zuffiziffer2;
  671.                                   END;
  672.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  673.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  674.                                      Hoechst[1] := Hoechst[1] + 2 + Zuffiziffer;
  675.                                    END;
  676.  
  677.   ZuffiZiffer := RANDOM(30);
  678.   IF Zuffiziffer <= 0 THEN IBM[1] := IBM[1];
  679.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  680.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  681.                                    IBM[1] := (IBM[1] - 25) + Zuffiziffer2;
  682.                                   END;
  683.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  684.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  685.                                      IBM[1] := IBM[1] + 2 + Zuffiziffer;
  686.                                    END;
  687.  
  688.   ZuffiZiffer := RANDOM(30);
  689.   IF Zuffiziffer <= 0 THEN Karstadt[1] := Karstadt[1];
  690.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  691.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  692.                                    Karstadt[1] := (Karstadt[1] - 25) + Zuffiziffer2;
  693.                                   END;
  694.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  695.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  696.                                      Karstadt[1] := Karstadt[1] + 2 + Zuffiziffer;
  697.                                    END;
  698.  
  699.   ZuffiZiffer := RANDOM(30);
  700.   IF Zuffiziffer <= 0 THEN KruppAG[1] := KruppAG[1];
  701.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  702.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  703.                                    KruppAG[1] := (KruppAG[1] - 25) + Zuffiziffer2;
  704.                                   END;
  705.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  706.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  707.                                      KruppAG[1] := KruppAG[1] + 2 + Zuffiziffer;
  708.                                    END;
  709.  
  710.   ZuffiZiffer := RANDOM(30);
  711.   IF Zuffiziffer <= 0 THEN Mercedes[1] := Mercedes[1];
  712.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  713.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  714.                                    Mercedes[1] := (BASF[1] - 25) + Zuffiziffer2;
  715.                                   END;
  716.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  717.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  718.                                      Mercedes[1] := Mercedes[1] + 2 + Zuffiziffer;
  719.                                    END;
  720.  
  721.   ZuffiZiffer := RANDOM(30);
  722.   IF Zuffiziffer <= 0 THEN Phoenix[1] := Phoenix[1];
  723.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  724.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  725.                                    Phoenix[1] := (Phoenix[1] - 25) + Zuffiziffer2;
  726.                                   END;
  727.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  728.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  729.                                      Phoenix[1] := Phoenix[1] + 2 + Zuffiziffer;
  730.                                    END;
  731.  
  732.   ZuffiZiffer := RANDOM(30);
  733.   IF Zuffiziffer <= 0 THEN Porsche[1] := Porsche[1];
  734.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  735.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  736.                                    Porsche[1] := (Porsche[1] - 25) + Zuffiziffer2;
  737.                                   END;
  738.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  739.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  740.                                      Porsche[1] := Porsche[1] + 2 + Zuffiziffer;
  741.                                    END;
  742.  
  743.   ZuffiZiffer := RANDOM(30);
  744.   IF Zuffiziffer <= 0 THEN Siemens[1] := Siemens[1];
  745.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  746.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  747.                                    Siemens[1] := (Siemens[1] - 25) + Zuffiziffer2;
  748.                                   END;
  749.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  750.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  751.                                      Siemens[1] := Siemens[1] + 2 + Zuffiziffer;
  752.                                    END;
  753.  
  754.   ZuffiZiffer := RANDOM(30);
  755.   IF Zuffiziffer <= 0 THEN Sony[1] := Sony[1];
  756.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  757.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  758.                                    Sony[1] := (Sony[1] - 25) + Zuffiziffer2;
  759.                                   END;
  760.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  761.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  762.                                      SOny[1] := Sony[1] + 2 + Zuffiziffer;
  763.                                    END;
  764.  
  765.   ZuffiZiffer := RANDOM(30);
  766.   IF Zuffiziffer <= 0 THEN Springer[1] := Springer[1];
  767.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  768.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  769.                                    Springer[1] := (Springer[1] - 25) + Zuffiziffer2;
  770.                                   END;
  771.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  772.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  773.                                      Springer[1] := Springer[1] + 2 + Zuffiziffer;
  774.                                    END;
  775.  
  776.   ZuffiZiffer := RANDOM(30);
  777.   IF Zuffiziffer <= 0 THEN Thyssen[1] := Thyssen[1];
  778.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  779.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  780.                                    Thyssen[1] := (Thyssen[1] - 25) + Zuffiziffer2;
  781.                                   END;
  782.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  783.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  784.                                      Thyssen[1] := Thyssen[1] + 2 + Zuffiziffer;
  785.                                    END;
  786.  
  787.   ZuffiZiffer := RANDOM(30);
  788.   IF Zuffiziffer <= 0 THEN Varta[1] := Varta[1];
  789.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  790.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  791.                                    Varta[1] := (Varta[1] - 25) + Zuffiziffer2;
  792.                                   END;
  793.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  794.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  795.                                      Varta[1] := Varta[1] + 2 + Zuffiziffer;
  796.                                    END;
  797.  
  798.   ZuffiZiffer := RANDOM(30);
  799.   IF Zuffiziffer <= 0 THEN VEW[1] := VEW[1];
  800.   IF ODD(Zuffiziffer)  = TRUE THEN BEGIN              {* Zahl ungerade -> Kurs fällt *}
  801.                                     ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
  802.                                    VEW[1] := (VEW[1] - 25) + Zuffiziffer2;
  803.                                   END;
  804.   IF ODD(Zuffiziffer) = FALSE THEN BEGIN             {* Zahl gerade   -> Kurs steigt *}
  805.                                      Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
  806.                                      VEW[1] := VEW[1] + 2 + Zuffiziffer;
  807.                                    END;
  808.    IF AEG[1] < 0 THEN AEG[1] := 0;
  809.    IF Bertelsmann[1] < 0 THEN Bertelsmann[1] := 0;
  810.    IF BMW[1] < 0 THEN BMW[1] := 0;
  811.    IF BP[1] < 0 THEN BP[1] := 0;
  812.    IF Continental[1] < 0 THEN Continental[1] := 0;
  813.    IF DresdnerBank[1] < 0 THEN DresdnerBank[1] := 0;
  814.    IF Hoechst[1] < 0 THEN Hoechst[1] := 0;
  815.    IF IBM[1] < 0 THEN IBM[1] := 0;
  816.    IF Karstadt[1] < 0 THEN Karstadt[1] := 0;
  817.    IF KruppAG[1] < 0 THEN KruppAG[1] := 0;
  818.    IF Mercedes[1] < 0 THEN Mercedes[1] := 0;
  819.    IF Phoenix[1] < 0 THEN Phoenix[1] := 0;
  820.    IF Porsche[1] < 0 THEN Porsche[1] := 0;
  821.    IF Siemens[1] < 0 THEN Siemens[1] := 0;
  822.    IF Sony[1] < 0 THEN Siemens[1] := 0;
  823.    IF Springer[1] < 0 THEN Springer[1] := 0;
  824.    IF Thyssen[1] < 0 THEN Thyssen[1] := 0;
  825.    IF Varta[1] < 0 THEN Varta[1] := 0;
  826.    IF VEW[1] < 0 THEN VEW[1] := 0;
  827.   Kurs;
  828. END;
  829.  
  830. PROCEDURE Auswertung;
  831. VAR Return : STRING;
  832. BEGIN
  833.   CLRSCR(f);
  834.   IF AEG[2] > 0 THEN Guthaben := Guthaben + AEG[1] * AEG[2];
  835.   IF BASF[2] > 0 THEN Guthaben := Guthaben + BASF[1] * BASF[2];
  836.   IF Bertelsmann[2] > 0 THEN Guthaben := Guthaben + Bertelsmann[2] * Bertelsmann[1];
  837.   IF BMW[2] > 0 THEN Guthaben := Guthaben + BMW[2] * BMW[1];
  838.   IF BP[2] > 0 THEN Guthaben := Guthaben + BP[2] * BP[1];
  839.   IF Continental[2] > 0 THEN Guthaben := Guthaben + Continental[1] * Continental[2];
  840.   IF DresdnerBank[2] > 0 THEN Guthaben := Guthaben + DresdnerBank[1] * DresdnerBank[2];
  841.   IF Hoechst[2] > 0 THEN Guthaben := Guthaben + Hoechst[2] * Hoechst[1];
  842.   IF IBM[2] > 0 THEN Guthaben := Guthaben + IBM[2] * IBM[1];
  843.   IF Karstadt[2] > 0 THEN Guthaben := Guthaben + Karstadt[1] * Karstadt[2];
  844.   IF KruppAG[2] > 0 THEN Guthaben := Guthaben + KruppAG[2] * KruppAG[1];
  845.   IF Mercedes[2] > 0 THEN Guthaben := Guthaben + Mercedes[2] * Mercedes[1];
  846.   IF Phoenix[2] > 0 THEN Guthaben := Guthaben + Phoenix[2] * Phoenix[1];
  847.   IF Porsche[2] > 0 THEN Guthaben := Guthaben + Porsche[2] * Porsche[1];
  848.   IF Siemens[2] > 0 THEN Guthaben := Guthaben + Siemens[2] * Siemens[1];
  849.   IF Sony[2] > 0 THEN Guthaben := Guthaben + Sony[2] * Sony[1];
  850.   IF Springer[2] > 0 THEN Guthaben := Guthaben + Springer[2] * Springer[1];
  851.   IF Thyssen[2] > 0 THEN Guthaben := Guthaben + Thyssen[2] * Thyssen[1];
  852.   IF Varta[2] > 0 THEN Guthaben := Guthaben + Varta[2] * Varta[1];
  853.   IF VEW[2] > 0 THEN Guthaben := Guthaben + VEW[2] * VEW[1];
  854.   COORD(10,15);WRITELN(f,Spielername,', Sie haben ',Guthaben:8,' DM erwirtschaftet!');
  855.   COORD(10,16);
  856.   IF Guthaben < 10001 THEN WRITELN(f,'Aber leider ist das nicht genug... Sie haben verloren...');
  857.   IF Guthaben > 10000 THEN WRITELN(f,'Sie haben Geschick bewiesen, denn Sie haben die 10000DM vermehrt...');
  858.   COORD(18,17);WRITE(f,'[RETURN] ');READLN(f,Return);
  859.   Guthaben := 10000;
  860.   Tag := 1;
  861.   Voreinstellungen;
  862. END;
  863.  
  864. PROCEDURE AskName;
  865. BEGIN
  866.   CLRSCR(f);WRITELN(f);WRITELN(f);WRITE(f,'Bitte geben Sie Ihren Namen ein: '); READLN(f,SpielerName);
  867.   CLRSCR(f);
  868. END;
  869.  
  870. PROCEDURE Spiel;
  871. BEGIN
  872.   CLRSCR(f);
  873.   AskName;
  874.   Voreinstellungen;
  875.   REPEAT;
  876.   REPEAT;
  877.   Spielmenu;
  878.   IF Wahl = 1 THEN Kaufen;
  879.   IF Wahl = 2 THEN Verkaufen;
  880.   IF Wahl = 3 THEN Kurs;
  881.   IF Wahl = 4 THEN Nothing;
  882.   IF Wahl = 5 THEN EXIT;
  883.   UNTIL Wahl = 4;
  884.   Kursberechnung;
  885.   UNTIL Tag = 46;
  886.   Auswertung;
  887. END;
  888.  
  889. BEGIN
  890.   Guthaben := 10000;
  891.   Tag      := 1;
  892.   ASSIGN(f,'CON:0/0/640/256/Börse');
  893.   RESET(f);
  894.   IF EOF(f) THEN ERROR('Could not open game window...');
  895.   REPEAT;
  896.   REPEAT;
  897.   CLRSCR(f);
  898.   COORD(15,2); WRITELN(f,'»» P L A N S P I E L  B Ö R S E ««');
  899.   COORD(15,4); WRITELN(f,'[1] ... Spiel beginnen');
  900.   COORD(15,5); WRITELN(f,'[2] ... Programmende');
  901.   COORD(13,7);WRITE(f,'> '); READLN(f,Wahl);
  902.   UNTIL (Wahl > 0) AND (Wahl < 3);
  903.   IF Wahl = 1 THEN Spiel;
  904.   IF Wahl = 2 THEN Nothing;
  905.   UNTIL Wahl = 2;
  906.   Close(f);
  907. END.
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.